Learn R Programming

XML (version 3.99-0.14)

[.XMLNode: Convenience accessors for the children of XMLNode objects.

Description

These provide a simplified syntax for extracting the children of an XML node.

Usage

# S3 method for XMLNode
[(x, ..., all = FALSE)
# S3 method for XMLNode
[[(x, ...)
# S3 method for XMLDocumentContent
[[(x, ...)

Value

A list or single element containing the children of the XML node given by obj

and identified by ....

Arguments

x

the XML node or the top-level document content in which the children are to be accessed. The XMLDocumentContent is the container for the top-level node that also contains information such as the URI/filename and XML version. This accessor method is merely a convenience to get access to children of the top-level node.

...

the identifiers for the children to be retrieved, given as integer indices, names, etc. in the usual format for the generic link{[} and link{[[} operators

all

logical value. When ... is a character vector, a value of TRUE for all means to retrieve all of the nodes with those names rather than just the first one. FALSE gives the usual result of subsetting a list by name which gives just the first element. This allows us to avoid the idiom node[ names(node) == "bob" ] which is complicated when node is the result of an inline computation and instead we use node["bob", all = TRUE].

Author

Duncan Temple Lang

References

https://www.w3.org/XML/, https://www.omegahat.net/RSXML/

See Also

xmlAttrs [<-.XMLNode [[<-.XMLNode

Examples

Run this code

 f = system.file("exampleData", "gnumeric.xml", package = "XML")

 top = xmlRoot(xmlTreeParse(f))

  # Get the first RowInfo element.
 top[["Sheets"]][[1]][["Rows"]][["RowInfo"]]

  # Get a list containing only the first row element
 top[["Sheets"]][[1]][["Rows"]]["RowInfo"]
 top[["Sheets"]][[1]][["Rows"]][1]

  # Get all of the RowInfo elements by position
 top[["Sheets"]][[1]][["Rows"]][1:xmlSize(top[["Sheets"]][[1]][["Rows"]])]

  # But more succinctly and accurately, get all of the RowInfo elements
 top[["Sheets"]][[1]][["Rows"]]["RowInfo", all = TRUE]

Run the code above in your browser using DataLab